//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
// Include lesser types.
#include "Sse1.hpp"


#if defined( _WINDOWS ) || (defined( __APPLE__ ) && defined( __SSE2__ ))
namespace Math
{
	namespace Simd
	{
		//////////////////////////////////////////////////////////////////////////
		// Sse base implementation.
		struct Sse2 : public Sse
		{
			typedef __m128i							I8x16_t;
			typedef __m128i							U8x16_t;
			typedef __m128i							I16x8_t;
			typedef __m128i							U16x8_t;
			typedef __m128i							I32x4_t;
			typedef __m128i							U32x4_t;
			typedef __m128d							F64x2_t;
		};
	}
}
#endif
